<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>weasel - Swagger UI</title>
    <link rel="stylesheet" type="text/css" href="./swagger-ui.css" />
    <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
    <link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
  </head>

  <body>
    <div id="swagger-ui"></div>

    <script src="./swagger-ui-bundle.js"></script>
    <script src="./swagger-ui-standalone-preset.js"></script>
    <script src="./axios.min.js"></script>

    <script type="text/javascript">
      const AlwaysEnableTryItOutPlugin = function (system) {
        const OperationContainer = system.getComponents('OperationContainer');
        return {
          components: {
            TryItOutButton: () => null,
            OperationContainer: class CustomOperationContainer extends OperationContainer {
              constructor(...args) {
                super(...args);
                this.state.tryItOutEnabled = true;
              }
            },
          },
        };
      };
      window.onload = function () {
        var urls = [];
        axios.get('/swagger-resources').then(function (response) {
          response.data.forEach(function (resource) {
            urls.push({ name: resource.name, url: resource.location });
          });

          urls.sort(function (a, b) {
            var x = a.name.toLowerCase(),
              y = b.name.toLowerCase();
            if (x.includes('(default)')) return -1;
            if (y.includes('(default)')) return 1;
            if (x.includes('(management)')) return -1;
            if (y.includes('(management)')) return 1;
            return x < y ? -1 : x > y ? 1 : 0;
          });

          // Build a system
          var ui = SwaggerUIBundle({
            urls: urls,
            dom_id: '#swagger-ui',
            deepLinking: true,
            filter: true,
            layout: 'StandaloneLayout',
            withCredentials: true,
            presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
            plugins: [SwaggerUIBundle.plugins.DownloadUrl, AlwaysEnableTryItOutPlugin],
            requestInterceptor: function (req) {
              var authToken = localStorage.getItem('jhi-authenticationToken') || sessionStorage.getItem('jhi-authenticationToken');
              if (authToken) {
                req.headers['Authorization'] = 'Bearer ' + authToken;
              }
              // Remove the sample Swagger UI request body if present
              if (
                req.method === 'GET' &&
                req.body === '{"additionalProp1":"string","additionalProp2":"string","additionalProp3":"string"}'
              ) {
                req.body = undefined;
              }
              return req;
            },
          });

          window.ui = ui;
        });
      };
    </script>
  </body>
</html>
